1. Field
The present invention relates generally to the operation of a device, and more particularly, to a system for dynamic arbitration of a shared resource on a device.
2. Description of the Related Art
Advances in technology have resulted in the development and deployment of extensive data networks. These networks include both public data networks, such as the Internet, and specialized networks, such as wireless telecommunication networks. Users of these networks have the ability to access a wide variety of information and services that are available. For example, wireless device owners may now download a wide variety of applications for execution on their devices.
Other advances in technology have resulted in smaller and more powerful personal computing devices. For example, there currently exists a variety of portable wireless telephones, personal digital assistants (PDAs), and paging devices that are small, lightweight, and can be easily carried by users. Typically, these devices are severely resource constrained. For example, the screen size, amount of available memory and file system space, amount of input and output capabilities and processing capability may be each limited by the small size of the device.
Resource allocation has become increasingly important as a result of the increase in downloadable applications on a wide variety of computing devices including severely resource constrained personal computing devices. Device resources include displays, keypads, sound processors, modems, storage devices, communication channels, and other types of device resources. Because each device has a limited number of resources, particularly those devices that are severely resource constrained, the way device resources are allocated to competing applications determines how the device operates. For example, a wireless telephone may be in a voice call, a data call, running an application, handling an SMS message, etc. Given these various states, there currently exists no dynamic, simple and efficient mechanism to determine which application should get control of a device resource on the device during these various states. For example if a music program is playing sounds and telephone call comes in, the ringer/voice application should get the sound resource. During this same time, should a calendar alarm or an SMS notification also get access to the sound resource? Thus, there is a need to effectively arbitrate between competing applications executing on a device to determine which application should get access to a particular device resource.
In current systems, resource arbitration is typically done either using a simple first-come-first-serve process, or by a set of strict priority-based decisions. In either case, the arbitration algorithm is hard-coded and does not take into account the dynamic environment in which current devices operate. Additionally, network carriers, device manufacturers, and application developers would like to have some dynamic control as to how device resources are allocated on a device. Unfortunately, current arbitration systems using static arbitration techniques cannot satisfy this need.
Therefore, what is needed is a dynamic arbitration system that allows device resources on a device to be dynamically allocated to competing applications executing on the device. This system should also provide a mechanism to allow third parties, such as network carriers, to have an input as to how the device resources on the device are allocated.